/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package pacoteframe;
import com.sun.glass.events.KeyEvent;
import java.awt.*;
import java.io.IOException;
//import java.awt.event.ContainerListener;
//import java.awt.event.ItemListener;
import java.sql.*;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
//import javax.swing.JOptionPane;
//import javax.swing.JTable;
//import javax.swing.JTextField;
import javax.swing.table.*;
import pacoteclasse.Produto;
import pacoteconexao.ConexaoMySQL;




public class FrmCadProduto extends javax.swing.JFrame {
    Produto cnnProduto = new Produto();
    String modo="pesquisa";
    ResultSet rsPesquisa=null;
    /**
     * Creates new form FrmCadProduto
     */
    public FrmCadProduto() {
        initComponents();
        setLocationRelativeTo(null);
//        int x=Toolkit.getDefaultToolkit().getScreenSize().width;
//        int y=Toolkit.getDefaultToolkit().getScreenSize().height;
//        setBounds(x/2-800/2, y/2-300/2, 800, 350);
        cnnProduto.conectar(); // aqui eh feita a conexão e usada enquanto o form está aberto
        pesquisar();
        pangProduto.setEnabledAt(1, false);
        botEditar_produto.setEnabled(false);
        botExcluir_produto.setEnabled(false);
        txtId_produto.setEnabled(false);
        txtPesquisa_produto.requestFocus();
    
    
    }
    
    private ResultSet atualizarTabela(String sql){
        ResultSet rsProduto = null;
        final DefaultTableModel modelo = new DefaultTableModel(){
            @Override
            public boolean isCellEditable(int row, int column){
                return false;
            }
        };
        try {
            modelo.addColumn("Código");
            modelo.addColumn("Nome");
            modelo.addColumn("Descrição");

            tblProduto.setModel(modelo);
            rsProduto=cnnProduto.consultar(sql);
        
            while(rsProduto.next()){
                modelo.addRow(new Object[]{
                    rsProduto.getInt("id_produto"),
                    rsProduto.getString("nome_produto"),
                    rsProduto.getString("descricao_produto")
                });
            }
            tblProduto.setModel(modelo);
            tblProduto.setSelectionMode(0);
            rsProduto.beforeFirst(); // volta para o inicio
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null,"Erro na inicialização: " + e);
        }
        return rsProduto;
    }
    

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        pangProduto = new javax.swing.JTabbedPane();
        PanPesquisa = new javax.swing.JPanel();
        txtPesquisa_produto = new javax.swing.JTextField();
        botPesquisar = new javax.swing.JButton();
        botNovo_produto = new javax.swing.JButton();
        botEditar_produto = new javax.swing.JButton();
        botExcluir_produto = new javax.swing.JButton();
        panTabela = new javax.swing.JScrollPane();
        tblProduto = new javax.swing.JTable();
        PanCadastro = new javax.swing.JPanel();
        botSalvar = new javax.swing.JButton();
        botLimpar = new javax.swing.JButton();
        botCancelar = new javax.swing.JButton();
        txtNome_produto = new javax.swing.JTextField();
        txtId_produto = new javax.swing.JTextField();
        lblId_produto = new javax.swing.JLabel();
        lblNome = new javax.swing.JLabel();
        lblObs = new javax.swing.JLabel();
        panDescricao = new javax.swing.JScrollPane();
        txtDescricao_produto = new javax.swing.JTextArea();
        lblPreco = new javax.swing.JLabel();
        txtpreco_produto = new javax.swing.JTextField();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setPreferredSize(new java.awt.Dimension(670, 360));

        PanPesquisa.setPreferredSize(new java.awt.Dimension(669, 328));

        txtPesquisa_produto.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        txtPesquisa_produto.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusGained(java.awt.event.FocusEvent evt) {
                txtPesquisa_produtoFocusGained(evt);
            }
        });
        txtPesquisa_produto.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txtPesquisa_produtoActionPerformed(evt);
            }
        });
        txtPesquisa_produto.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                txtPesquisa_produtoKeyReleased(evt);
            }
        });

        botPesquisar.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        botPesquisar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/pacoteicones/Pesquisar.png"))); // NOI18N
        botPesquisar.setText("Pesquisar");
        botPesquisar.setFocusTraversalPolicyProvider(true);
        botPesquisar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botPesquisarActionPerformed(evt);
            }
        });

        botNovo_produto.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        botNovo_produto.setIcon(new javax.swing.ImageIcon(getClass().getResource("/pacoteicones/Novo.png"))); // NOI18N
        botNovo_produto.setText("Novo");
        botNovo_produto.setIconTextGap(15);
        botNovo_produto.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botNovo_produtoActionPerformed(evt);
            }
        });

        botEditar_produto.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        botEditar_produto.setIcon(new javax.swing.ImageIcon(getClass().getResource("/pacoteicones/Editar.png"))); // NOI18N
        botEditar_produto.setText("Editar");
        botEditar_produto.setIconTextGap(15);
        botEditar_produto.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botEditar_produtoActionPerformed(evt);
            }
        });

        botExcluir_produto.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        botExcluir_produto.setIcon(new javax.swing.ImageIcon(getClass().getResource("/pacoteicones/Excluir.png"))); // NOI18N
        botExcluir_produto.setText("Excluir");
        botExcluir_produto.setIconTextGap(15);
        botExcluir_produto.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botExcluir_produtoActionPerformed(evt);
            }
        });

        tblProduto.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {

            }
        ));
        tblProduto.setCellSelectionEnabled(false);
        tblProduto.setRowSelectionAllowed(true);
        tblProduto.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        tblProduto.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusGained(java.awt.event.FocusEvent evt) {
                tblProdutoFocusGained(evt);
            }
            public void focusLost(java.awt.event.FocusEvent evt) {
                tblProdutoFocusLost(evt);
            }
        });
        tblProduto.addComponentListener(new java.awt.event.ComponentAdapter() {
            public void componentShown(java.awt.event.ComponentEvent evt) {
                tblProdutoComponentShown(evt);
            }
        });
        panTabela.setViewportView(tblProduto);

        javax.swing.GroupLayout PanPesquisaLayout = new javax.swing.GroupLayout(PanPesquisa);
        PanPesquisa.setLayout(PanPesquisaLayout);
        PanPesquisaLayout.setHorizontalGroup(
            PanPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(PanPesquisaLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(PanPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(PanPesquisaLayout.createSequentialGroup()
                        .addComponent(txtPesquisa_produto, javax.swing.GroupLayout.PREFERRED_SIZE, 335, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(botPesquisar, javax.swing.GroupLayout.PREFERRED_SIZE, 123, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap(186, Short.MAX_VALUE))
                    .addGroup(PanPesquisaLayout.createSequentialGroup()
                        .addComponent(panTabela)
                        .addGap(18, 18, 18)
                        .addGroup(PanPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(botNovo_produto, javax.swing.GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(botEditar_produto, javax.swing.GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(botExcluir_produto, javax.swing.GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(21, 21, 21))))
        );
        PanPesquisaLayout.setVerticalGroup(
            PanPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(PanPesquisaLayout.createSequentialGroup()
                .addGap(17, 17, 17)
                .addGroup(PanPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txtPesquisa_produto, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(botPesquisar, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(PanPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, PanPesquisaLayout.createSequentialGroup()
                        .addComponent(botNovo_produto, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(botEditar_produto, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(botExcluir_produto, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(panTabela, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
                .addGap(10, 10, 10))
        );

        pangProduto.addTab("Produtos", PanPesquisa);

        PanCadastro.setPreferredSize(new java.awt.Dimension(669, 328));

        botSalvar.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        botSalvar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/pacoteicones/Salvar.png"))); // NOI18N
        botSalvar.setText("Salvar");
        botSalvar.setIconTextGap(10);
        botSalvar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botSalvarActionPerformed(evt);
            }
        });

        botLimpar.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        botLimpar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/pacoteicones/Limpar.png"))); // NOI18N
        botLimpar.setText("Limpar");
        botLimpar.setIconTextGap(10);
        botLimpar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botLimparActionPerformed(evt);
            }
        });

        botCancelar.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        botCancelar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/pacoteicones/Cancelar.png"))); // NOI18N
        botCancelar.setText("Cancelar");
        botCancelar.setIconTextGap(5);
        botCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botCancelarActionPerformed(evt);
            }
        });

        txtNome_produto.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        txtNome_produto.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txtNome_produtoActionPerformed(evt);
            }
        });

        txtId_produto.setEditable(false);
        txtId_produto.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N

        lblId_produto.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        lblId_produto.setText("Código:");

        lblNome.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        lblNome.setText("Nome:");

        lblObs.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        lblObs.setText("Descrição:");

        txtDescricao_produto.setColumns(20);
        txtDescricao_produto.setRows(1);
        panDescricao.setViewportView(txtDescricao_produto);

        lblPreco.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        lblPreco.setText("Preço:");

        txtpreco_produto.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txtpreco_produtoActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout PanCadastroLayout = new javax.swing.GroupLayout(PanCadastro);
        PanCadastro.setLayout(PanCadastroLayout);
        PanCadastroLayout.setHorizontalGroup(
            PanCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, PanCadastroLayout.createSequentialGroup()
                .addGap(15, 15, 15)
                .addGroup(PanCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(PanCadastroLayout.createSequentialGroup()
                        .addGroup(PanCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(lblNome, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(lblId_produto, javax.swing.GroupLayout.DEFAULT_SIZE, 94, Short.MAX_VALUE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(PanCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(txtNome_produto)
                            .addGroup(PanCadastroLayout.createSequentialGroup()
                                .addComponent(txtId_produto, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(0, 318, Short.MAX_VALUE))))
                    .addGroup(PanCadastroLayout.createSequentialGroup()
                        .addComponent(lblPreco, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(txtpreco_produto, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addGroup(PanCadastroLayout.createSequentialGroup()
                        .addComponent(lblObs, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(panDescricao)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(PanCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(botSalvar, javax.swing.GroupLayout.PREFERRED_SIZE, 137, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(botLimpar, javax.swing.GroupLayout.PREFERRED_SIZE, 137, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(botCancelar, javax.swing.GroupLayout.Alignment.TRAILING))
                .addContainerGap())
        );
        PanCadastroLayout.setVerticalGroup(
            PanCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(PanCadastroLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(botSalvar)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(botLimpar, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(botCancelar)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
            .addGroup(PanCadastroLayout.createSequentialGroup()
                .addGap(35, 35, 35)
                .addGroup(PanCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txtId_produto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(lblId_produto, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addGap(18, 18, 18)
                .addGroup(PanCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(lblNome, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(txtNome_produto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(14, 14, 14)
                .addGroup(PanCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(lblPreco, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(txtpreco_produto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(PanCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(lblObs, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(panDescricao, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(15, Short.MAX_VALUE))
        );

        pangProduto.addTab("Cadastrar", PanCadastro);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(pangProduto, javax.swing.GroupLayout.DEFAULT_SIZE, 669, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(pangProduto, javax.swing.GroupLayout.PREFERRED_SIZE, 303, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(34, Short.MAX_VALUE))
        );

        pangProduto.getAccessibleContext().setAccessibleName("Cadastrar Produto");

        getAccessibleContext().setAccessibleName("Cadastrar Produto");

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void pesquisar(){
        try{
            txtPesquisa_produto.requestFocus();
            String pesquisa = "\"%"+txtPesquisa_produto.getText()+"%\"";
            rsPesquisa = atualizarTabela("SELECT * FROM tb_produto WHERE "+
                "id_produto like "+pesquisa+
                " OR nome_produto like "+pesquisa+
                " OR descricao_produto like "+pesquisa+
                ";");
        }
        catch(Exception e){
            JOptionPane.showMessageDialog(null,"Erro ao pesquisar: " + e);
        }
    }
    
    private void txtPesquisa_produtoFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtPesquisa_produtoFocusGained
        botEditar_produto.setEnabled(false);
        botExcluir_produto.setEnabled(false);
        if(!modo.equals("pesquisa")){
            botNovo_produto.setEnabled(false);
        }
    }//GEN-LAST:event_txtPesquisa_produtoFocusGained

    private void txtPesquisa_produtoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtPesquisa_produtoActionPerformed
        pesquisar();
    }//GEN-LAST:event_txtPesquisa_produtoActionPerformed

    private void txtPesquisa_produtoKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtPesquisa_produtoKeyReleased
        pesquisar();
    }//GEN-LAST:event_txtPesquisa_produtoKeyReleased

    private void botPesquisarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botPesquisarActionPerformed
        pesquisar();
    }//GEN-LAST:event_botPesquisarActionPerformed

    private void botNovo_produtoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botNovo_produtoActionPerformed

        txtId_produto.setText("");
        txtNome_produto.setText("");
        txtDescricao_produto.setText("");
        pangProduto.setSelectedIndex(0);
        pangProduto.setEnabledAt(1, false);
        pangProduto.setEnabledAt(1, true);
        pangProduto.setSelectedIndex(1);
        txtNome_produto.requestFocus();
        modo="novo";
    }//GEN-LAST:event_botNovo_produtoActionPerformed

    private void botEditar_produtoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botEditar_produtoActionPerformed

        modo="editar";
        int i,idCidade;
        try{
            for(i=0;i<=tblProduto.getSelectedRow();i++){
                rsPesquisa.next(); // acha o registro que o usuário clicou
            }
            pangProduto.setEnabledAt(1, true);
            pangProduto.setSelectedIndex(1);
            txtId_produto.setText(rsPesquisa.getString("id_produto"));
            txtNome_produto.setText(rsPesquisa.getString("nome_produto"));
            txtDescricao_produto.setText(rsPesquisa.getString("descricao_produto"));
        }catch(SQLException ex){
            JOptionPane.showMessageDialog(null,"Erro na edição: " + ex);
            Logger.getLogger(FrmCadProduto.class.getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_botEditar_produtoActionPerformed

    private void botExcluir_produtoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botExcluir_produtoActionPerformed
        if(JOptionPane.showConfirmDialog(pangProduto,
            "Deseja realmente excluir este produto?","Confirmação",
            JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){
        ResultSet listCliente;
        int i;
        try{
            listCliente=cnnProduto.consultar("SELECT * FROM tb_produto;");
            for(i=0;i<=tblProduto.getSelectedRow();i++){
                listCliente.next();
            }
            cnnProduto.excluirProduto(listCliente.getString("id_produto"));
            JOptionPane.showMessageDialog(null,"Produto excluído com sucesso!");
            pesquisar();
        }catch(Exception e){
            JOptionPane.showMessageDialog(null,"Erro na exclusão: " + e);
        }
        }
    }//GEN-LAST:event_botExcluir_produtoActionPerformed

    private void tblProdutoFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_tblProdutoFocusGained
        if(modo.equals("pesquisa")){
            botNovo_produto.setEnabled(true);
            botEditar_produto.setEnabled(true);
            botExcluir_produto.setEnabled(true);
        }
    }//GEN-LAST:event_tblProdutoFocusGained

    private void tblProdutoFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_tblProdutoFocusLost

    }//GEN-LAST:event_tblProdutoFocusLost

    private void tblProdutoComponentShown(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_tblProdutoComponentShown

    }//GEN-LAST:event_tblProdutoComponentShown

    private void botSalvarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botSalvarActionPerformed
        String strTipo,preco_txt;
        float preco_flt;
        int idCidade,i;
        try{
            if(txtNome_produto.getText().equals("")){
                JOptionPane.showMessageDialog(null,"Informe o nome do produto!");
                txtNome_produto.requestFocus();
                return;
            }
            if(JOptionPane.showConfirmDialog(pangProduto,
                "Deseja realmente salvar os dados?","Confirmação",
                JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){

            cnnProduto.conectar();
            if(modo.equals("novo")){
                preco_txt=txtpreco_produto.getText();
                preco_flt=Float.parseFloat(preco_txt);//converte o texto pegado em float
                
                cnnProduto.inserirProduto(
                    txtNome_produto.getText(),
                    preco_flt,
                    txtDescricao_produto.getText()
                );
            }else if (modo.equals("editar")){
                    preco_txt=txtpreco_produto.getText();
                    preco_flt=Float.parseFloat(preco_txt);
                    cnnProduto.editarProduto(
                    txtId_produto.getText(),
                    txtNome_produto.getText(),
                    preco_flt,
                    txtDescricao_produto.getText()
                );
            }
            JOptionPane.showMessageDialog(null,"Dados salvos com sucesso!");
            pangProduto.setSelectedIndex(0);
            pangProduto.setEnabledAt(1, false);
            txtId_produto.setText("");
            txtNome_produto.setText("");
            txtDescricao_produto.setText("");
            modo="pesquisa";
            botNovo_produto.setEnabled(true);

            pesquisar();
        }
        }catch(Exception e){
            JOptionPane.showMessageDialog(null,"Erro na inserção: " + e);
        }
    }//GEN-LAST:event_botSalvarActionPerformed

    private void botLimparActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botLimparActionPerformed
        if(JOptionPane.showConfirmDialog(pangProduto,
            "Deseja realmente limpar todos os dados da tela?","Confirmação",
            JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){
        txtId_produto.setText("");
        txtNome_produto.setText("");
        txtDescricao_produto.setText("");
        }
    }//GEN-LAST:event_botLimparActionPerformed

    private void botCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botCancelarActionPerformed
        String msg="";
        if(modo.equals("novo"))
        msg="Deseja realmente cancelar o novo cadastro?";
        else if(modo.equals("editar"))
        msg="Deseja realmente cancelar a edição?";

        if(JOptionPane.showConfirmDialog(pangProduto,
            msg,"Confirmação",
            JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){
        txtId_produto.setText("");
        txtNome_produto.setText("");
        txtDescricao_produto.setText("");
        pangProduto.setSelectedIndex(0);
        pangProduto.setEnabledAt(1, false);
        modo="pesquisa";
        botNovo_produto.setEnabled(true);
        pesquisar();
        }
    }//GEN-LAST:event_botCancelarActionPerformed

    private void txtNome_produtoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtNome_produtoActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_txtNome_produtoActionPerformed

    private void txtpreco_produtoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtpreco_produtoActionPerformed
     
    }//GEN-LAST:event_txtpreco_produtoActionPerformed

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(FrmCadProduto.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(FrmCadProduto.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(FrmCadProduto.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(FrmCadProduto.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new FrmCadProduto().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JPanel PanCadastro;
    private javax.swing.JPanel PanPesquisa;
    private javax.swing.JButton botCancelar;
    private javax.swing.JButton botEditar_produto;
    private javax.swing.JButton botExcluir_produto;
    private javax.swing.JButton botLimpar;
    private javax.swing.JButton botNovo_produto;
    private javax.swing.JButton botPesquisar;
    private javax.swing.JButton botSalvar;
    private javax.swing.JLabel lblId_produto;
    private javax.swing.JLabel lblNome;
    private javax.swing.JLabel lblObs;
    private javax.swing.JLabel lblPreco;
    private javax.swing.JScrollPane panDescricao;
    private javax.swing.JScrollPane panTabela;
    private javax.swing.JTabbedPane pangProduto;
    private javax.swing.JTable tblProduto;
    private javax.swing.JTextArea txtDescricao_produto;
    private javax.swing.JTextField txtId_produto;
    private javax.swing.JTextField txtNome_produto;
    private javax.swing.JTextField txtPesquisa_produto;
    private javax.swing.JTextField txtpreco_produto;
    // End of variables declaration//GEN-END:variables
}
